// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by sidekick. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;

impl std::fmt::Debug for super::MembershipState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MembershipState");
        debug_struct.field("cluster_name", &self.cluster_name);
        debug_struct.field("membership_spec", &self.membership_spec);
        debug_struct.field("operator_state", &self.operator_state);
        debug_struct.field("config_sync_state", &self.config_sync_state);
        debug_struct.field("policy_controller_state", &self.policy_controller_state);
        debug_struct.field(
            "hierarchy_controller_state",
            &self.hierarchy_controller_state,
        );
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MembershipSpec {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MembershipSpec");
        debug_struct.field("config_sync", &self.config_sync);
        debug_struct.field("policy_controller", &self.policy_controller);
        debug_struct.field("hierarchy_controller", &self.hierarchy_controller);
        debug_struct.field("version", &self.version);
        debug_struct.field("cluster", &self.cluster);
        debug_struct.field("management", &self.management);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::ConfigSync {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("ConfigSync");
        debug_struct.field("git", &self.git);
        debug_struct.field("source_format", &self.source_format);
        debug_struct.field("enabled", &self.enabled);
        debug_struct.field("prevent_drift", &self.prevent_drift);
        debug_struct.field("oci", &self.oci);
        debug_struct.field(
            "metrics_gcp_service_account_email",
            &self.metrics_gcp_service_account_email,
        );
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::GitConfig {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("GitConfig");
        debug_struct.field("sync_repo", &self.sync_repo);
        debug_struct.field("sync_branch", &self.sync_branch);
        debug_struct.field("policy_dir", &self.policy_dir);
        debug_struct.field("sync_wait_secs", &self.sync_wait_secs);
        debug_struct.field("sync_rev", &self.sync_rev);
        debug_struct.field("secret_type", &self.secret_type);
        debug_struct.field("https_proxy", &self.https_proxy);
        debug_struct.field("gcp_service_account_email", &self.gcp_service_account_email);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::OciConfig {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("OciConfig");
        debug_struct.field("sync_repo", &self.sync_repo);
        debug_struct.field("policy_dir", &self.policy_dir);
        debug_struct.field("sync_wait_secs", &self.sync_wait_secs);
        debug_struct.field("secret_type", &self.secret_type);
        debug_struct.field("gcp_service_account_email", &self.gcp_service_account_email);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::PolicyController {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("PolicyController");
        debug_struct.field("enabled", &self.enabled);
        debug_struct.field(
            "template_library_installed",
            &self.template_library_installed,
        );
        debug_struct.field("audit_interval_seconds", &self.audit_interval_seconds);
        debug_struct.field("exemptable_namespaces", &self.exemptable_namespaces);
        debug_struct.field("referential_rules_enabled", &self.referential_rules_enabled);
        debug_struct.field("log_denies_enabled", &self.log_denies_enabled);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::HierarchyControllerConfig {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("HierarchyControllerConfig");
        debug_struct.field("enabled", &self.enabled);
        debug_struct.field("enable_pod_tree_labels", &self.enable_pod_tree_labels);
        debug_struct.field(
            "enable_hierarchical_resource_quota",
            &self.enable_hierarchical_resource_quota,
        );
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::HierarchyControllerDeploymentState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("HierarchyControllerDeploymentState");
        debug_struct.field("hnc", &self.hnc);
        debug_struct.field("extension", &self.extension);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::HierarchyControllerVersion {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("HierarchyControllerVersion");
        debug_struct.field("hnc", &self.hnc);
        debug_struct.field("extension", &self.extension);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::HierarchyControllerState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("HierarchyControllerState");
        debug_struct.field("version", &self.version);
        debug_struct.field("state", &self.state);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::OperatorState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("OperatorState");
        debug_struct.field("version", &self.version);
        debug_struct.field("deployment_state", &self.deployment_state);
        debug_struct.field("errors", &self.errors);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::InstallError {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("InstallError");
        debug_struct.field("error_message", &self.error_message);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::ConfigSyncState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("ConfigSyncState");
        debug_struct.field("version", &self.version);
        debug_struct.field("deployment_state", &self.deployment_state);
        debug_struct.field("sync_state", &self.sync_state);
        debug_struct.field("errors", &self.errors);
        debug_struct.field("rootsync_crd", &self.rootsync_crd);
        debug_struct.field("reposync_crd", &self.reposync_crd);
        debug_struct.field("state", &self.state);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::ConfigSyncError {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("ConfigSyncError");
        debug_struct.field("error_message", &self.error_message);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::ConfigSyncVersion {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("ConfigSyncVersion");
        debug_struct.field("importer", &self.importer);
        debug_struct.field("syncer", &self.syncer);
        debug_struct.field("git_sync", &self.git_sync);
        debug_struct.field("monitor", &self.monitor);
        debug_struct.field("reconciler_manager", &self.reconciler_manager);
        debug_struct.field("root_reconciler", &self.root_reconciler);
        debug_struct.field("admission_webhook", &self.admission_webhook);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::ConfigSyncDeploymentState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("ConfigSyncDeploymentState");
        debug_struct.field("importer", &self.importer);
        debug_struct.field("syncer", &self.syncer);
        debug_struct.field("git_sync", &self.git_sync);
        debug_struct.field("monitor", &self.monitor);
        debug_struct.field("reconciler_manager", &self.reconciler_manager);
        debug_struct.field("root_reconciler", &self.root_reconciler);
        debug_struct.field("admission_webhook", &self.admission_webhook);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::SyncState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("SyncState");
        debug_struct.field("source_token", &self.source_token);
        debug_struct.field("import_token", &self.import_token);
        debug_struct.field("sync_token", &self.sync_token);
        debug_struct.field("last_sync", &self.last_sync);
        debug_struct.field("last_sync_time", &self.last_sync_time);
        debug_struct.field("code", &self.code);
        debug_struct.field("errors", &self.errors);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::SyncError {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("SyncError");
        debug_struct.field("code", &self.code);
        debug_struct.field("error_message", &self.error_message);
        debug_struct.field("error_resources", &self.error_resources);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::ErrorResource {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("ErrorResource");
        debug_struct.field("source_path", &self.source_path);
        debug_struct.field("resource_name", &self.resource_name);
        debug_struct.field("resource_namespace", &self.resource_namespace);
        debug_struct.field("resource_gvk", &self.resource_gvk);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::GroupVersionKind {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("GroupVersionKind");
        debug_struct.field("group", &self.group);
        debug_struct.field("version", &self.version);
        debug_struct.field("kind", &self.kind);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::PolicyControllerState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("PolicyControllerState");
        debug_struct.field("version", &self.version);
        debug_struct.field("deployment_state", &self.deployment_state);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::PolicyControllerVersion {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("PolicyControllerVersion");
        debug_struct.field("version", &self.version);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::GatekeeperDeploymentState {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("GatekeeperDeploymentState");
        debug_struct.field(
            "gatekeeper_controller_manager_state",
            &self.gatekeeper_controller_manager_state,
        );
        debug_struct.field("gatekeeper_audit", &self.gatekeeper_audit);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}
